package ch7;

import org.omg.CORBA.PRIVATE_MEMBER;
import org.omg.CORBA.PUBLIC_MEMBER;

public class Outer {

	private int id = 11;
	private String name = "outer";
	
	public Outer(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	
	public void printOuter() {
		System.out.println(id+"in outer:"+name);
		//内部类可以直接在外部类中使用，用于完成特定功能
		Inner inner = new Inner();
		inner.printInner();
		
	}
		
	//内部类：在实际使用中经常被定义为私有的，只在外部类中使用
	private  class Inner{
		
		private int id = 101;
		private String name = "inner";	
		public void printInner() {
			//在内部类中，可以直接使用外部类的属性和方法
			//在内部类中，如果有变量与外部类的变量名称相同，优先使用内部类变量
			int innerId = id;
			String innerName = name;
			System.out.println(innerId+"in Inner:"+innerName);
		    printOuter();
		}
	}
	
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
